/**
 * @(#)CategoriaEmpleoK.java Jan 15, 2007
 *
 * Copyright (c) 2005-2010 Psiqueware S.A. de C.V. All Rights Reserved.
 * This software is the proprietary information Psiqueware S.A. de C.V.
 * Use is subject to license terms.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 * <br/>Usuario : Psique
 * <br/>Creaci&oacute;n: Jan 15, 2007 - 9:39:19 AM
 * <br/>
 * <br/>
 * <br/><t5>Cambios :</t5>
 * <br/><b>Fecha | Autor  |  Cambios</b>
 * <ul>
 * <li>Jan 15, 2007 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Psique</a> | Creaci&oacute;n del Objeto.</li>
 * <li>Abr 19, 2007 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Psique</a> | Se eliminar&oacute;n las referencias a las clases Empresa, Deportamento, etc y se cambiar&oacute;n por referencias a Estructura.</li>
 *
 * </ul>
 */

package com.psiqueware.jazmin.empresas.recursos.humanos.modelo;

import com.psiqueware.alheli.basico.BaseObject;
import com.psiqueware.manzanilla.informacion.documentos.Documento;

import com.psiqueware.jazmin.empresas.recursos.humanos.CategoriaEmpleo;

/**
 * Define una categor&iacute;a laboral dependiendo del trabajo desempe&ntilde;ado y el nivel de estudios.
 * Puede ser: Ejecutivo, Gerente, Profesional (los que tiene carrera profesional),
 * Tecnicos (los que tiene carrera tecnica), Soporte (los que tiene carrera tecnica).
 * <br/>Paquete Original: com.psiqueware.tulipan.empresas.modelo
 * <br/>Nombre  Original: CategoriaEmpleoK
 * <br/>Oprima para ver : <a href="CategoriaEmpleoK.java.html"><i>C&oacute;digo Fuente</i> </a>
 *
 * @author <a href="mailto:AngelElectrico@PsiqueWare.com">Psique</a>
 * @version Revision: 1.1 Jan 15, 2007 9:39:19 AM
 * @noinspection ClassWithoutLogger
 */
public class CategoriaEmpleoK extends BaseObject implements CategoriaEmpleo
{

    /** Clave de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo. */
    private String m_clave;

    /** Nombre descriptivo de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo. */
    private Documento m_descripcion;

    /** Identificador &uacute;nico de la Empresa que di&oacute; de alta esta categoria. */
    private Long m_idEstructura;

    /** Constructor de CategoriaEmpleoK. */
    public CategoriaEmpleoK ()
    {

    }

    /**
     * Contructor de categoria.
     *
     * @param clave       de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo.
     * @param descripcion de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo.
     * @param idEmpresa Identificador &uacute;nico de la Empresa que di&oacute; de alta esta categoria.
     */
    public CategoriaEmpleoK ( final String clave, final Documento descripcion, final Long idEmpresa )
    {
        m_clave = clave;
        m_descripcion = descripcion;
        m_idEstructura = idEmpresa;
    }


    /**
     * Devuelve el Clave de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo.
     *
     * @return valor de 'clave'.
     *
     * @see String
     */
    public String getClave ()
    {
        return m_clave;
    }

    /**
     * Establece el Clave de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo.
     *
     * @param clave nuevo valor para 'clave'.
     *
     * @see String
     */
    public void setClave ( final String clave )
    {
        m_clave = clave;
    }

    /**
     * Devuelve el Nombre descriptivo de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo.
     *
     * @return valor de 'descripcion'.
     *
     * @see Documento
     */
    public Documento getDescripcion ()
    {
        return m_descripcion;
    }

    /**
     * Establece el Nombre descriptivo de esta {@link CategoriaEmpleo}. Este campo lo llena el usuario y es informativo.
     *
     * @param descripcion nuevo valor para 'descripcion'.
     *
     * @see Documento
     */
    public void setDescripcion ( final Documento descripcion )
    {
        m_descripcion = descripcion;
    }

    /**
     * Devuelve el Identificador &uacute;nico de la Empresa que di&oacute; de alta esta categoria.
     *
     * @return valor de 'idEmpresa'.
     *
     * @see Long
     */
    public Long getIdEstructura ()
    {
        return m_idEstructura;
    }

    /**
     * Establece el Identificador &uacute;nico de la Empresa que di&oacute; de alta esta categoria.
     *
     * @param idEstructura nuevo valor para 'idEmpresa'.
     *
     * @see Long
     */
    public void setIdEstructura ( final Long idEstructura )
    {
        m_idEstructura = idEstructura;
    }

    /**
     * Convierte este {@link CategoriaEmpleo} a su representación textual.
     *
     * @noinspection DuplicateStringLiteralInspection,HardCodedStringLiteral,HardcodedLineSeparator
     */
    public String toString ()
    {
        StringBuilder sb = new StringBuilder ();
        sb.append ( "<Instance Class = '" ).append ( this.getClass ().getCanonicalName () ).append ( "'>" );
        sb.append ( "<clave>" ).append ( m_clave ).append ( "</clave> " );
        sb.append ( "<descripcion>" ).append ( m_descripcion ).append ( "</descripcion> " );
        sb.append ( "<idEmpresa>" ).append ( m_idEstructura ).append ( "</idEmpresa> " );
        sb.append ( "</Instance>" );
        return sb.toString ();
    }
}

